// 由两个或多个其他类型组成的类型，表示可能是这些类 型中的任何一种的值。我们将这些类型中的每一种称为联合类型的成员。
function printId(id: number | string) {
    console.log("Your ID is: " + id);
}
printId(101); // ok
printId("202"); // ok
printId({ myID: 22342 });  // error 类型“{ myID: number; }”的参数不能赋给类型“string | number”的参数

// 基础类型联合
let strOrNum: string | number;
strOrNum = 1; //ok
strOrNum= "a"//ok

// 对象类型联合  只能访问联合中所有共同成员
interface Women{
    age: number,
    sex: string,
    cry(): void
}
interface Man{
    age: number,
    sex: string,
}
declare function People(): Women | Man;
let people = People();
people.age = 18; // ok
people.cry();// error 非共同成员  类型“Women | Man”上不存在属性“cry”
